import 'package:core/extension/extension_num.dart';
import 'package:core/provider/global_key_provider.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class DialogHelper {
  const DialogHelper._();

  static void showBottomSheet({
    required Widget child,
    double? height,
    bool isDismissible = true,
  }) {
    showModalBottomSheet(
      context: GlobalKeyProvider.navigatorContext!,
      isDismissible: isDismissible,
        useSafeArea: true,
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(16.px))),
      builder: (context) => IntrinsicHeight(
        child: SizedBox(
          width: double.infinity,
          height: height,
          child: child,
        ),
      ),
    );
  }

//   static showBottomPicker(
//     BuildContext context, {
//     required List<String> data,
//     double? height,
//     bool isDismissible = true,
//     ValueChanged<int>? select,
//   }) {
//     // item高度*length + 分割线高度*length + 取消高度和分割线高度
//     height ??= data.length * 90.px + (data.length - 1) * 2.px + 12.px + 90.px;
//     showModalBottomSheet(
//       context: context,
//       isDismissible: isDismissible,
//       shape: RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(16.px))),
//       builder: (context) => Container(
//         height: height,
//         decoration: BoxDecoration(
//           color: Colors.white,
//           borderRadius: BorderRadius.vertical(top: Radius.circular(16.px)),
//         ),
//         child: Column(
//           mainAxisSize: MainAxisSize.min,
//           children: [
//             ListView.separated(
//               shrinkWrap: true,
//               physics: const NeverScrollableScrollPhysics(),
//               itemBuilder: (context, index) {
//                 return InkWell(
//                   onTap: () {
//                     Navigator.of(context).pop();
//                     if (null != select) select.call(index);
//                   },
//                   child: SizedBox(
//                     height: 90.px,
//                     child: Center(
//                       child: Text(data[index] ?? '-', style: ColorHelper.textColorDark.toStyle(32.px)),
//                     ),
//                   ),
//                 );
//               },
//               separatorBuilder: (context, index) => Container(height: 2.px, color: ColorHelper.lineColor),
//               itemCount: data.length,
//             ),
//             Container(
//               height: 12.px,
//               color: ColorHelper.bgColor,
//             ),
//             ClickAbleText(
//               text: '取消',
//               textStyle: ColorHelper.textColorLight1.toStyle(32.px),
//               height: 90.px,
//               onTap: () => Navigator.pop(context),
//             ),
//           ],
//         ),
//       ),
//     );
//   }
//
//   static showBottomConfirmSheet(
//     BuildContext context, {
//     required Widget child,
//     double? height,
//     bool isDismissible = true,
//     String? title,
//     GestureTapCallback? onConfirm,
//   }) {
//     showModalBottomSheet(
//       context: context,
//       isDismissible: isDismissible,
//       isScrollControlled: true,
//       shape: RoundedRectangleBorder(borderRadius: BorderRadius.vertical(top: Radius.circular(16.px))),
//       builder: (context) => AnimatedPadding(
//         padding: MediaQuery.of(context).viewInsets,
//         duration: const Duration(milliseconds: 100),
//         child: IntrinsicHeight(
//           child: Container(
//             height: height,
//             decoration: BoxDecoration(
//               color: Colors.white,
//               borderRadius: BorderRadius.vertical(top: Radius.circular(16.px)),
//             ),
//             child: Column(
//               mainAxisSize: MainAxisSize.min,
//               children: [
//                 if (null != title)
//                   Container(
//                     width: double.infinity,
//                     height: 100.px,
//                     decoration: BoxDecoration(
//                       border: Border(bottom: BorderSide(color: ColorHelper.lineColor, width: 1.px)),
//                     ),
//                     alignment: Alignment.center,
//                     child: Text(title, style: ColorHelper.textColorDark.toStyle(32.px, bold: true)),
//                   ),
//                 child,
//                 Container(
//                   padding: EdgeInsets.all(40.px),
//                   child: Row(
//                     children: [
//                       Expanded(
//                         child: ClickAbleText(
//                           text: '取消',
//                           textStyle: ColorHelper.textColorLight1.toStyle(32.px),
//                           height: 84.px,
//                           radius: 8.px,
//                           border: Border.all(color: ColorHelper.lineColor, width: 2.px),
//                           onTap: () => Navigator.pop(context),
//                         ),
//                       ),
//                       SizedBox(width: 22.px),
//                       Expanded(
//                         child: ClickAbleText(
//                           text: '确认',
//                           textStyle: Colors.white.toStyle(32.px),
//                           height: 84.px,
//                           radius: 8.px,
//                           color: ColorHelper.themeColor,
//                           onTap: () {
//                             Navigator.of(context).pop();
//                             if (null != onConfirm) onConfirm.call();
//                           },
//                         ),
//                       ),
//                     ],
//                   ),
//                 ),
//               ],
//             ),
//           ),
//         ),
//       ),
//     );
//   }
//
//   static showConfirmDialog(
//     BuildContext context, {
//     String? title,
//     String? msg,
//     String? hint,
//     VoidCallback? onConfirm,
//   }) {
//     showDialog(
//       context: context,
//       builder: (BuildContext context) => NewDialog(
//         title: title,
//         msg: msg,
//         cancel: "取消",
//         sure: "确认",
//         hintText: hint ?? '',
//         sureStyle: const Color(0xFFEB0000).toStyle(32.px),
//         sureFuc: () {
//           onConfirm?.call();
//         },
//       ),
//     );
//   }
//
//   static showCustomDialog(
//     BuildContext context, {
//     String? title,
//     String? content,
//     Widget? child,
//     String? cancelText = '取消',
//     String? confirmText = '确定',
//     Color? cancelColor,
//     Color? confirmColor,
//     GestureTapCallback? cancel,
//     GestureTapCallback? confirm,
//   }) {
//     showDialog(
//         context: context,
//         builder: (context) {
//           return Material(
//             type: MaterialType.transparency,
//             child: Center(
//               child: Container(
//                 margin: EdgeInsets.symmetric(horizontal: 80.px),
//                 decoration: BoxDecoration(
//                   color: Colors.white,
//                   borderRadius: BorderRadius.circular(16.px),
//                 ),
//                 child: Column(
//                   mainAxisSize: MainAxisSize.min,
//                   children: [
//                     Container(
//                       padding: EdgeInsets.all(30.px),
//                       child: Column(
//                         children: [
//                           if (null != title)
//                             Padding(
//                               padding: EdgeInsets.only(bottom: 14.px),
//                               child: Text(
//                                 title,
//                                 style: Colors.black.toStyle(32.px, bold: true),
//                               ),
//                             ),
//                           if (null != content)
//                             Text(
//                               content,
//                               style: ColorHelper.textColorBody.toStyle(28.px),
//                             ),
//                           if (null != child)
//                             Padding(
//                               padding: EdgeInsets.only(top: 30.px),
//                               child: child,
//                             ),
//                         ],
//                       ),
//                     ),
//                     Container(
//                       height: 100.px,
//                       decoration: BoxDecoration(
//                         border: Border(top: BorderSide(color: ColorHelper.lineColor, width: 1.px)),
//                       ),
//                       child: Row(
//                         children: [
//                           if (null != cancelText)
//                             Expanded(
//                               child: ClickAbleText(
//                                 text: cancelText,
//                                 textStyle: (cancelColor ?? ColorHelper.textColorDark).toStyle(32.px),
//                                 height: 100.px,
//                                 alignment: Alignment.center,
//                                 onTap: () {
//                                   Navigator.of(context).pop();
//                                   if (null != cancel) cancel.call();
//                                 },
//                               ),
//                             ),
//                           if (null != confirmText)
//                             Expanded(
//                               child: ClickAbleText(
//                                 text: confirmText,
//                                 textStyle: (confirmColor ?? ColorHelper.themeColor).toStyle(32.px),
//                                 height: 100.px,
//                                 alignment: Alignment.center,
//                                 onTap: () {
//                                   Navigator.of(context).pop();
//                                   if (null != confirm) confirm.call();
//                                 },
//                                 border: Border(
//                                     left: (null != cancelText)
//                                         ? BorderSide(color: ColorHelper.lineColor, width: 1.px)
//                                         : BorderSide.none),
//                               ),
//                             ),
//                         ],
//                       ),
//                     ),
//                   ],
//                 ),
//               ),
//             ),
//           );
//         });
//   }
// }
//
// ///iOS风格
// class MyCupertino {
//   static buildSheet(
//     BuildContext context, {
//     Widget? title,
//     Widget? message,
//     required List<String> actionNames,
//     required Function(int) click,
//   }) {
//     showCupertinoModalPopup(
//       context: context,
//       builder: (context) {
//         List<Widget> widgets = [];
//         for (var i = 0; i < actionNames.length; i++) {
//           widgets.add(
//             CupertinoActionSheetAction(
//               onPressed: () {
//                 click(i);
//               },
//               child: Text(
//                 actionNames[i],
//                 style: TextStyle(color: ColorHelper.themeColor, fontSize: 32.px, fontWeight: FontWeight.bold),
//               ),
//             ),
//           );
//         }
//         return CupertinoActionSheet(
//           title: title,
//           message: message,
//           actions: widgets,
//           cancelButton: CupertinoActionSheetAction(
//             onPressed: () {
//               Navigator.pop(context);
//             },
//             child: Text(
//               '取消',
//               style: TextStyle(color: ColorHelper.textColorLight1, fontSize: 32.px, fontWeight: FontWeight.bold),
//             ),
//           ),
//         );
//       },
//     );
//   }
//
//   static buildAlert(
//     BuildContext context, {
//     Widget? title,
//     Widget? message,
//     required Function cancel,
//     required Function sure,
//     Color? barrierColor,
//     bool barrierDismissible = true,
//   }) {
//     var dialog = CupertinoAlertDialog(
//       title: title,
//       content: message,
//       actions: <Widget>[
//         CupertinoButton(
//           child: const Text("取消"),
//           onPressed: () {
//             Navigator.pop(context);
//             cancel();
//           },
//         ),
//         CupertinoButton(
//           child: const Text("确定"),
//           onPressed: () {
//             Navigator.pop(context);
//             sure();
//           },
//         ),
//       ],
//     );
//
//     showDialog(
//       context: context,
//       builder: (_) => dialog,
//       barrierColor: barrierColor,
//       barrierDismissible: barrierDismissible,
//     );
//   }
//
//   static buildonlySure(
//     BuildContext context, {
//     Widget? title,
//     Widget? message,
//     required Function sure,
//     Color? barrierColor,
//     bool barrierDismissible = true,
//   }) {
//     var dialog = CupertinoAlertDialog(
//       title: title,
//       content: message,
//       actions: <Widget>[
//         CupertinoButton(
//           child: const Text("确定"),
//           onPressed: () {
//             Navigator.pop(context);
//             sure();
//           },
//         ),
//       ],
//     );
//     showDialog(
//       context: context,
//       builder: (_) => dialog,
//       barrierColor: barrierColor,
//       barrierDismissible: barrierDismissible,
//     );
//   }
}
